#ifndef QQ_CONTENT_DIALOG
#define QQ_CONTENT_DIALOG

#include <qabstractnativeeventfilter.h>
#include <qdialog.h>

#include <stdafx.h>

class QQContentDialogPrivate;
class QQContentDialog : public QDialog
{
	Q_OBJECT
		Q_Q_CREATE(QQContentDialog)
public:
	explicit QQContentDialog(QWidget* parent);
	~QQContentDialog();
public:
	void setCentralWidget(QWidget* centralWidget);

	void setLeftButtonText(QString text);
	void setMiddleButtonText(QString text);
	void setRightButtonText(QString text);

	void setLeftButtonVisible(bool visible);
	void setMiddleButtonVisible(bool visible);
	void setRightButtonVisible(bool visible);

	void setButtonSize(int width, int height);
	void setButtonSize(QSize size);
	void setButtonRadius(int radius);

	void close();
signals:
	void leftButtonClicked();
	void middleButtonClicked();
	void rightButtonClicked();
public slots:
	virtual void onLeftButtonClicked();
	virtual void onMiddleButtonClicked();
	virtual void onRightButtonClicked();
protected:
	virtual void showEvent(QShowEvent* event) override;
	virtual void paintEvent(QPaintEvent* event) override;
	virtual void keyPressEvent(QKeyEvent* event) override;
#ifdef Q_OS_WIN
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
	virtual bool nativeEvent(const QByteArray& eventType, void* message, qintptr* result) override;
#else
	virtual bool nativeEvent(const QByteArray& eventType, void* message, long* result) override;
#endif
#endif
};

#endif // !QQ_CONTENT_DIALOG